<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"
      xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <link rel="shortcut icon" href="#"/>
    <meta charset="UTF-8"/>
    <title>首页</title>
</head>
<body>
<h1 th:text="'欢迎' + ${user.loginName } + '登录springboot-shiro专题学习系统! 请选择你的操作'"></h1><br/>
<ul>
    <h1 th:if="${msg != null }" th:text="${msg}" style="color: red"></h1>
    <div><h1 style="color: red;">1、根据当前登录用户加载相应角色列表</h1>
        <shiro:hasAllRoles name="超级管理员"><a href="/role/info1">超级管理员</a></shiro:hasAllRoles>
        <shiro:hasAllRoles name="一级管理员"><a href="/role/info2">一级管理员</a></shiro:hasAllRoles>
        <br/>
    </div>

    <div><h1 style="color: red;">2、根据当前登录用户加载菜单列表</h1>
        <h2 th:text="'1、根据当前登录用户' + ${user.loginName } + '加载一级菜单'"></h2>
        <shiro:hasPermission name="sys:user"><a href="/user">系统管理</a></shiro:hasPermission>
        <br/>

        <shiro:hasPermission name="sys:user:list"><a href="/user/list">用户管理</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:role:list"><a href="/role/list">角色管理</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:menu:list"><a href="/menu/list">权限管理</a></shiro:hasPermission>
        <br/>

        <h2 th:text="'2、根据当前登录用户' + ${user.loginName } + '加载二级菜单'"></h2>
        <h3>1、用户管理的二级菜单</h3>
        <shiro:hasPermission name="sys:user:add"><a href="/user/add">新增用户</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:user:edit"><a href="/user/delete">编辑用户</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:user:delete"><a href="/user/delete">删除用户</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:user:lock"><a href="/user/lock">锁定用户</a></shiro:hasPermission>
        <br/>
        <h3>2、角色管理的二级菜单</h3>
        <shiro:hasPermission name="sys:role:add"><a href="/user/add">新增角色</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:role:edit"><a href="/user/delete">编辑角色</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:role:delete"><a href="/user/list">删除角色</a></shiro:hasPermission>
        <br/>
        <h3>3、权限管理的二级菜单</h3>
        <shiro:hasPermission name="sys:menu:add"><a href="/user/add">新增权限</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:menu:edit"><a href="/user/delete">编辑权限</a></shiro:hasPermission>
        <br/>
        <shiro:hasPermission name="sys:menu:delete"><a href="/user/list">删除权限</a></shiro:hasPermission>
        <br/>
    </div>
    <div><h1 style="color: red;">3、学习其他命令大全(请看本html代码)</h1>


        <h2>1、验证用户状态命令</h2>

        <!--用户没有身份验证时显示相应信息，即游客访问信息 -->
        <shiro:guest>用户如果是游客身份，则显示本行</shiro:guest><br/>
        <!-- 用户已经身份验证/记住我登录后显示相应的信息 -->
        <shiro:user>用户已经登录过了，则显示本行</shiro:user><br/>
        <!-- 用户已经身份验证通过，即Subject.login登录成功，不是记住我登录的 -->
        <shiro:authenticated>不是记住我登录状态，则显示本行</shiro:authenticated><br/>


        <h2>2、获取用户信息命令</h2>

        <!-- 显示用户身份信息，通常为登录帐号信息，默认调用Subject.getPrincipal()获取，即Primary Principal -->
        <shiro:principal></shiro:principal>打印当前登录信息实体，则显示本行<br/>
        <!--用户已经身份验证通过，即没有调用Subject.login进行登录，包括记住我自动登录的也属于未进行身份验证，与guest标签的区别是，该标签包含已记住用户 -->
        <shiro:notAuthenticated>已记住用户，则显示本行</shiro:notAuthenticated><br/>
        <!-- 相当于Subject.getPrincipals().oneByType(String.class) -->
        <shiro:principal type="java.lang.String"/>当前登录信息转成string，则显示本行<br/>
        <!-- 相当于((User)Subject.getPrincipals()).getUsername() -->
        <shiro:principal property="loginName"/>得到当前登录名，则显示本行<br/>



        <h2>3、角色命令大全</h2>

        <!-- 如果当前Subject有角色将显示body体内容 name="角色名" -->
        <shiro:hasRole name="超级管理员">用户拥有超级管理员角色，则显示本行</shiro:hasRole><br/>
        <!-- 如果当前Subject有任意一个角色（或的关系）将显示body体内容。 name="角色名1,角色名2..." -->
        <shiro:hasAnyRoles name="超级管理员,一级管理员">用户拥有超级管理员角色 或者 一级管理员角色，则显示本行</shiro:hasAnyRoles><br/>
        <!-- 如果当前Subject没有角色将显示body体内容 -->
        <shiro:lacksRole name="超级管理员">如果不是超级管理员角色，则显示本行</shiro:lacksRole><br/>



        <h2>4、权限(菜单)命令大全</h2>

        <!-- 如果当前Subject有权限将显示body体内容 name="权限名" -->
        <shiro:hasPermission name="sys:user:add">用户拥有添加权限，则显示本行</shiro:hasPermission><br/>
        <!-- 用户同时拥有以下两种权限,显示内容 -->
        <shiro:hasAllPermissions name="sys:user:add,sys:user:delete">用户同时拥有新增 和 删除权限，则显示本行</shiro:hasAllPermissions><br/>
        <!-- 用户拥有以下权限任意一种 -->
        <shiro:hasAnyPermissions name="sys:user:add,sys:user:delete">用户拥有列表权限 或者 删除权限，则显示本行</shiro:hasAnyPermissions><br/>
        <!-- 如果当前Subject没有权限将显示body体内容 name="权限名" -->
        <shiro:lacksPermission name="sys:user:add">如果用户没有添加权限，则显示本行</shiro:lacksPermission><br/>

    </div>

</ul>
<a href="/logout">点我退出登录</a>
</body>
</html>